package br.ufrn.sipac.patrimonio.coletor.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.ZoomButton;
import br.ufrn.sipac.patrimonio.auxiliares.ConstantesOperacoes;
import br.ufrn.sipac.patrimonio.coletor.R;
import br.ufrn.sipac.patrimonio.coletor.controller.MainController;

/**
 * Exibe os detalhes do levantamento selecionado pelo usuário.
 * 
 * @author Giuliana Silva Bezerra
 * 
 */
public class DetalhesColetaActivity extends Activity {
	private ZoomButton zoomBensBaixados;
	private ZoomButton zoomBensInventariados;
	private ZoomButton zoomBensNaoCadastrados;
	private ZoomButton zoomBensNaoInventariados;
	private TextView bensBaixados;
	private TextView bensInventariados;
	private TextView bensNaoCadastrados;
	private TextView bensNaoInventariados;
	private Button voltar;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_detalhes_coleta);

		// Mapear os componente da tela
		zoomBensBaixados = (ZoomButton) findViewById(R.id.zoomButton1);
		zoomBensInventariados = (ZoomButton) findViewById(R.id.zoomButton2);
		zoomBensNaoCadastrados = (ZoomButton) findViewById(R.id.zoomButton3);
		zoomBensNaoInventariados = (ZoomButton) findViewById(R.id.zoomButton4);
		voltar = (Button) findViewById(R.id.button1);
		bensBaixados = (TextView) findViewById(R.id.textView4);
		bensInventariados = (TextView) findViewById(R.id.TextView03);
		bensNaoCadastrados = (TextView) findViewById(R.id.TextView04);
		bensNaoInventariados = (TextView) findViewById(R.id.TextView05);

		// Inicializa componentes
		bensBaixados.setText(String.valueOf(MainController
				.getCountBensBaixados()));
		bensInventariados.setText(String.valueOf(MainController
				.getCountBensInventariados()));
		bensNaoCadastrados.setText(String.valueOf(MainController
				.getCountBensNaoCadastrados()));
		bensNaoInventariados.setText(String.valueOf(MainController
				.getCountBensNaoInventariados()));

		// Adicionar listeners
		zoomBensBaixados.setOnClickListener(new DetalhesListener());
		zoomBensInventariados.setOnClickListener(new DetalhesListener());
		zoomBensNaoCadastrados.setOnClickListener(new DetalhesListener());
		zoomBensNaoInventariados.setOnClickListener(new DetalhesListener());
		voltar.setOnClickListener(new VoltarCadastroLevantamentoLocalidadeListener());
	}

	/**
	 * Encaminha para a tela de visualização do bem.
	 * 
	 * @see BensLevantamentoActivity
	 */
	public void visualizarDetalhesBem() {
		finish();
		Intent intent = new Intent(this, BensLevantamentoActivity.class);
		startActivity(intent);
	}

	/**
	 * Retorna para a activity de cadastro de localidade.
	 * 
	 * @see CadastroLevantamentoLocalidadeActivity
	 */
	public void voltarCadastroLevantamentoLocalidade() {
		finish();
		Intent intent = new Intent(this, LeituraActivity.class);
		startActivity(intent);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.detalhes_coleta, menu);
		return true;
	}

	/**
	 * Carrega menu da aplicação.
	 */
	private void iniciaMenu() {
		finish();
		Intent intent = new Intent(this, MenuActivity.class);
		startActivity(intent);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.item2:
			iniciaMenu();
		case R.id.item1:
			finish();
		}
		return false;
	}

	/**
	 * Listener que lida com o encaminhamento para a tela de visualização de
	 * detalhes do bem.
	 */
	public class DetalhesListener implements Button.OnClickListener {
		@Override
		public void onClick(View arg0) {
			ZoomButton obj = (ZoomButton) arg0;
			// Bens baixados
			if (R.id.zoomButton1 == obj.getId()) {
				MainController
						.setTipoOperacao(ConstantesOperacoes.OPERACAO_LISTAR_BENS_BAIXADOS);
				visualizarDetalhesBem();
			}
			// Bens inventariados
			else if (R.id.zoomButton2 == obj.getId()) {
				MainController
						.setTipoOperacao(ConstantesOperacoes.OPERACAO_LISTAR_BENS_INVENTARIADOS);
				visualizarDetalhesBem();
			}
			// Bens não cadastrados
			else if (R.id.zoomButton3 == obj.getId()) {
				MainController
						.setTipoOperacao(ConstantesOperacoes.OPERACAO_LISTAR_BENS_NAO_CADASTRADOS);
				visualizarDetalhesBem();
			}
			// Bens não inventariados
			else {
				MainController
						.setTipoOperacao(ConstantesOperacoes.OPERACAO_LISTAR_BENS_NAO_INVENTARIADOS);
				visualizarDetalhesBem();
			}
		}
	}

	/**
	 * Listener que volta para a tela de cadastro da localidade do levantamento.
	 */
	public class VoltarCadastroLevantamentoLocalidadeListener implements
			Button.OnClickListener {
		@Override
		public void onClick(View arg0) {
			voltarCadastroLevantamentoLocalidade();
		}
	}

	@Override
	public void onBackPressed() {
		// Desabilita botão voltar.
	}
}
